{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Programming Exercise 5: Regularized Linear Regression and Bias vs. Variance"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "%matplotlib inline\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import scipy.io #Used to load the OCTAVE *.mat files\n",
    "import scipy.optimize #fmin_cg to train the linear regression\n",
    "\n",
    "import warnings\n",
    "warnings.filterwarnings('ignore')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 1 Regularized Linear Regression"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 1.1 Visualizing the dataset"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "datafile = 'data/ex5data1.mat'\n",
    "mat = scipy.io.loadmat( datafile )\n",
    "#Training set\n",
    "X, y = mat['X'], mat['y']\n",
    "#Cross validation set\n",
    "Xval, yval = mat['Xval'], mat['yval']\n",
    "#Test set\n",
    "Xtest, ytest = mat['Xtest'], mat['ytest']\n",
    "#Insert a column of 1's to all of the X's, as usual\n",
    "X =     np.insert(X    ,0,1,axis=1)\n",
    "Xval =  np.insert(Xval ,0,1,axis=1)\n",
    "Xtest = np.insert(Xtest,0,1,axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11ec12210>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "def plotData():\n",
    "    plt.figure(figsize=(8,5))\n",
    "    plt.ylabel('Water flowing out of the dam (y)')\n",
    "    plt.xlabel('Change in water level (x)')\n",
    "    plt.plot(X[:,1],y,'rx')\n",
    "    plt.grid(True)\n",
    "    \n",
    "plotData()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 1.2 Regularized linear regression cost function"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "def h(theta,X): #Linear hypothesis function\n",
    "    return np.dot(X,theta)\n",
    "\n",
    "def computeCost(mytheta,myX,myy,mylambda=0.): #Cost function\n",
    "    \"\"\"\n",
    "    theta_start is an n- dimensional vector of initial theta guess\n",
    "    X is matrix with n- columns and m- rows\n",
    "    y is a matrix with m- rows and 1 column\n",
    "    \"\"\"\n",
    "    m = myX.shape[0]\n",
    "    myh = h(mytheta,myX).reshape((m,1))\n",
    "    mycost = float((1./(2*m)) * np.dot((myh-myy).T,(myh-myy)))\n",
    "    regterm = (float(mylambda)/(2*m)) * float(mytheta[1:].T.dot(mytheta[1:]))\n",
    "    return mycost + regterm"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "303.99319222\n"
     ]
    }
   ],
   "source": [
    "# Using theta initialized at [1; 1], and lambda = 1, you should expect to \n",
    "# see an output of 303.993192\n",
    "mytheta = np.array([[1.],[1.]])\n",
    "print computeCost(mytheta,X,y,mylambda=1.)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 1.3 Regularized linear regression gradient"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "def computeGradient(mytheta,myX,myy,mylambda=0.):\n",
    "    mytheta = mytheta.reshape((mytheta.shape[0],1))\n",
    "    m = myX.shape[0]\n",
    "    #grad has same shape as myTheta (2x1)\n",
    "    myh = h(mytheta,myX).reshape((m,1))\n",
    "    grad = (1./float(m))*myX.T.dot(h(mytheta,myX)-myy)\n",
    "    regterm = (float(mylambda)/m)*mytheta\n",
    "    regterm[0] = 0 #don't regulate bias term\n",
    "    regterm.reshape((grad.shape[0],1))\n",
    "    return grad + regterm\n",
    "\n",
    "#Here's a wrapper for computeGradient that flattens the output\n",
    "#This is for the minimization routine that wants everything flattened\n",
    "def computeGradientFlattened(mytheta,myX,myy,mylambda=0.):\n",
    "    return computeGradient(mytheta,myX,myy,mylambda=0.).flatten()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[ -15.30301567]\n",
      " [ 598.25074417]]\n"
     ]
    }
   ],
   "source": [
    "# Using theta initialized at [1; 1] you should expect to see a\n",
    "# gradient of [-15.303016; 598.250744] (with lambda=1)\n",
    "mytheta = np.array([[1.],[1.]])\n",
    "print computeGradient(mytheta,X,y,1.)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 1.4 Fitting linear regression"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": false,
    "scrolled": false
   },
   "outputs": [],
   "source": [
    "def optimizeTheta(myTheta_initial, myX, myy, mylambda=0.,print_output=True):\n",
    "    fit_theta = scipy.optimize.fmin_cg(computeCost,x0=myTheta_initial,\\\n",
    "                                       fprime=computeGradientFlattened,\\\n",
    "                                       args=(myX,myy,mylambda),\\\n",
    "                                       disp=print_output,\\\n",
    "                                       epsilon=1.49e-12,\\\n",
    "                                       maxiter=1000)\n",
    "    fit_theta = fit_theta.reshape((myTheta_initial.shape[0],1))\n",
    "    return fit_theta"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Optimization terminated successfully.\n",
      "         Current function value: 22.373906\n",
      "         Iterations: 18\n",
      "         Function evaluations: 28\n",
      "         Gradient evaluations: 28\n"
     ]
    }
   ],
   "source": [
    "mytheta = np.array([[1.],[1.]])\n",
    "fit_theta = optimizeTheta(mytheta,X,y,0.)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x11ec04e50>]"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nicD/Bz8o7DGeGuQ8AAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11ec04c50>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plotData()\n",
    "plt.plot(X[:,1],h(fit_theta,X).flatten())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2 Bias-variance"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 2.1 Learning curves"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "def plotLearningCurve():\n",
    "    \"\"\"\n",
    "    Loop over first training point, then first 2 training points, then first 3 ...\n",
    "    and use each training-set-subset to find trained parameters.\n",
    "    With those parameters, compute the cost on that subset (Jtrain)\n",
    "    remembering that for Jtrain, lambda = 0 (even if you are using regularization).\n",
    "    Then, use the trained parameters to compute Jval on the entire validation set\n",
    "    again forcing lambda = 0 even if using regularization.\n",
    "    Store the computed errors, error_train and error_val and plot them.\n",
    "    \"\"\"\n",
    "    initial_theta = np.array([[1.],[1.]])\n",
    "    mym, error_train, error_val = [], [], []\n",
    "    for x in xrange(1,13,1):\n",
    "        train_subset = X[:x,:]\n",
    "        y_subset = y[:x]\n",
    "        mym.append(y_subset.shape[0])\n",
    "        fit_theta = optimizeTheta(initial_theta,train_subset,y_subset,mylambda=0.,print_output=False)\n",
    "        error_train.append(computeCost(fit_theta,train_subset,y_subset,mylambda=0.))\n",
    "        error_val.append(computeCost(fit_theta,Xval,yval,mylambda=0.))\n",
    "        \n",
    "    plt.figure(figsize=(8,5))\n",
    "    plt.plot(mym,error_train,label='Train')\n",
    "    plt.plot(mym,error_val,label='Cross Validation')\n",
    "    plt.legend()\n",
    "    plt.title('Learning curve for linear regression')\n",
    "    plt.xlabel('Number of training examples')\n",
    "    plt.ylabel('Error')\n",
    "    plt.grid(True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nhAk+cuRId3f//PPPvVmzZj5t2jTfsWOHX3fddZ6VlVW27EcffeT//e9/vaSkxJcsWeK9evXy3//+\n92XrNbNyMefn53vnzp3d3b2wsNB79Ojhd955pxcWFvpbb73lzZs397lz57q7++jRo71NmzY+ffp0\nLy4u9hEjRvh5551XZd6r+syQbEfyEji719l8uOJDFn1dR3tuIpIy7Farlamm1q1bR5s2bcjIqL4M\nDBw4kNNOCy4D3meffXjyyScZP348OTk55OTkMH78+LIj76ysLL766isWLVpEZmZm2bh+ZmYmO3bs\n4LPPPqOoqIguXbqw//77V7q9M888k4KCAj744AMgOPo++eSTycnJAaB79+4MHTqUBg0akJOTw7XX\nXrvLGH5lXnjhBU477TQGDRpEVlYWt912W7mvwz388MM58sgjMTO6dOnCmDFjdlmvV9G5/P7777Nl\nyxZuuOEGGjRowJAhQzj11FN56qmnyr2v/v37k5GRwYgRI8rObUm0KE68q3caZzVmZJ+RPPTxQ/xq\n6K92/4JaVHoykFRPeQpPuQonbJ58fDSjkjk5Oaxdu5aSkpJqC318lzTAypUr6dJl5znSXbt2ZeXK\nlQBcf/31TJgwgRNPPBEz47LLLuOGG26ge/fu3HvvvUyYMIHZs2dz0kkncffdd7Pffvvtsr3GjRtz\n9tln8/jjj3P00UczefJk7rnnnrLnV69ezdVXX81//vMfNm/eTHFxMa1bt97t+125cmW599KkSZOy\nHQeAefPmcd111zF9+nS2bdtGUVER/fv3r2xVu/jqq692yVPXrl1ZsWLnuePt27cvt+3NmzeHWvfe\n0pF8HRk7YCyPzniUwuLCqEMREWHgwIE0atSIl16q/ou0Kt54tGPHjixZsqSsvWTJEjp06ABAs2bN\n+O1vf8uCBQuYMmUKv/vd78rG3ocPH85//vOfstfeeOONVW7zwgsv5Nlnn+Vf//oXmzdv5tRTTy17\n7qabbiIjI4PPP/+cb775hieeeCLUzYb2228/li3beSuWrVu3sm7durL2j370I3r27MmCBQv45ptv\nuP3220PfxKhDhw7l1g2wdOlSOnaM/lYvKvJ15OA2B3NQzkG8POflOt1uql3OExXlKTzlKpxkz1N2\ndja33norP/7xj3n55ZfLjl7/8Y9/VFuAhw8fzi9/+UvWrl3L2rVrue2228pObvv73//OggULAGje\n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\nyJdvXE6n7E7lCvkBOQdwQOsDyG2ZS1Zm1i7rW/j1QibkT+Cf8//J/x3zf1x55JU0yWpSK7GKiOwt\nFXnZRX5+Pnl5eVGHAcDlr15Obstcbjz2xtCvKSopYsk3S3YeiccV8qUblrJfs/3Kind8Id+/1f40\nzGwYejvxeZq9ZjY/f/vnvL/8fW469iYu639ZjdaV7pLpM5XMlKdwlKfw9qTIa0xe6syovqO4dMql\n3DDoBsx2fk6LS4pZtnHZzgIeV8iXfLOEdk3blSvkQ7sN5YDWB9CtVTcaNWhU63H2atuL5899no9W\nfsTP3v4Zv3nvN0zIm8AFfS6gQYb+ZEQkdehIXuqMu3PAfQcwss9INm7fWFbIF329iDZN2lR6RN6t\nVTcaZzWONO7/LPkPN791M6u3rOYXQ37B2b3OJsN0YYqI1C1110vSe/qzp5m6cOrOsfKc4Geyj327\nO28seIOb37qZYi/ml0N+ySkHnFKuR0JEJJFU5GUXGu8KJ2ye3J2/ffk3bnn7Flru05Lbv3M7ebm7\nf1060WcqHOUpHOUpPN3xTiTBzIyzep7FrMtncXn/y7lkyiV8d9J3+d+K/0UdmojILiI9kjezDGA6\nsNzdTzezVsAzQFdgMXCuu2+o5HU6kpekUFhcyF8/+Su3vXMbAzoM4LYht9F7395RhyUiaSgVj+Sv\nBmbHtW8Eprr7QcBbwLhIohIJKSszi7EDxjLvqnkc3/V4Tph0AiNeHMH89fOjDk1EJLoib2adgFOA\nh+NmDwMeiz1+DDijruNKN7ovdDh7m6fGWY25buB1zL9qPgfnHMzRDx/NmFfGsGzDstoJMInoMxWO\n8hSO8pRYUR7J3wNcD8T3u+/r7gUA7r4KaBdFYCJ7qnmj5twy+BbmXjWX1o1b0/eBvlzzz2tYvWV1\n1KGJSD0UyZi8mX0fONndrzSzPOC62Jj81+7eKm65de6eU8nrNSYvKWHV5lX86j+/YvKnk7m8/+X8\n3zH/R6vGrXb/QhGRClLpjneDgNPN7BSgMdDczCYBq8xsX3cvMLP2QJWHP6NHjyY3NxeAli1b0q9f\nv7LLMEq7f9RWO+p2+2btOavxWRzT6xj+tflfHPjHAxnWaBg/6PkDTv7uyZHHp7baaidvOz8/n4kT\nJwKU1buaivw6eTMbDPw0diT/a2Cdu99lZjcArdx9lxud60g+vHxdgxpKXeVpzto5jM8fT/7ifMYd\n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\nAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11eeae750>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#\"You can observe that both the train error and cross validation error are high\n",
    "# when the number of training examples is increased. This reflects a high bias \n",
    "# problem in the model – the linear regression model is too simple and is unable \n",
    "# to fit our dataset well.\"\n",
    "plotLearningCurve()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 3 Polynomial regression"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "def genPolyFeatures(myX,p):\n",
    "    \"\"\"\n",
    "    Function takes in the X matrix (with bias term already included as the first column)\n",
    "    and returns an X matrix with \"p\" additional columns.\n",
    "    The first additional column will be the 2nd column (first non-bias column) squared,\n",
    "    the next additional column will be the 2nd column cubed, etc.\n",
    "    \"\"\"\n",
    "    newX = myX.copy()\n",
    "    for i in xrange(p):\n",
    "        dim = i+2\n",
    "        newX = np.insert(newX,newX.shape[1],np.power(newX[:,1],dim),axis=1)\n",
    "    return newX\n",
    "\n",
    "def featureNormalize(myX):\n",
    "    \"\"\"\n",
    "    Takes as input the X array (with bias \"1\" first column), does\n",
    "    feature normalizing on the columns (subtract mean, divide by standard deviation).\n",
    "    Returns the feature-normalized X, and feature means and stds in a list\n",
    "    Note this is different than my implementation in assignment 1...\n",
    "    I didn't realize you should subtract the means, THEN compute std of the\n",
    "    mean-subtracted columns.\n",
    "    Doesn't make a huge difference, I've found\n",
    "    \"\"\"\n",
    "   \n",
    "    Xnorm = myX.copy()\n",
    "    stored_feature_means = np.mean(Xnorm,axis=0) #column-by-column\n",
    "    Xnorm[:,1:] = Xnorm[:,1:] - stored_feature_means[1:]\n",
    "    stored_feature_stds = np.std(Xnorm,axis=0,ddof=1)\n",
    "    Xnorm[:,1:] = Xnorm[:,1:] / stored_feature_stds[1:]\n",
    "    return Xnorm, stored_feature_means, stored_feature_stds\n",
    "    "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 3.1 Learning Polynomial Regression"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "collapsed": false,
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Warning: Desired error not necessarily achieved due to precision loss.\n",
      "         Current function value: 0.202941\n",
      "         Iterations: 52\n",
      "         Function evaluations: 107\n",
      "         Gradient evaluations: 95\n"
     ]
    }
   ],
   "source": [
    "#Generate an X matrix with terms up through x^8\n",
    "#(7 additional columns to the X matrix)\n",
    "\n",
    "###############################################################\n",
    "# My d=8 plot doesn't match the homework pdf, due to differences\n",
    "# between scipy.optimize.fmin_cg and the octave version\n",
    "# I see that in subokita's implementation, for fitting he gets the\n",
    "# same results as I when using scipy.optimize.fmin_cg\n",
    "# \n",
    "# The d=5 plot (up through x^6) shows overfitting clearly, so I'll\n",
    "# continue using that\n",
    "###############################################################\n",
    "\n",
    "global_d = 5\n",
    "newX = genPolyFeatures(X,global_d)\n",
    "newX_norm, stored_means, stored_stds = featureNormalize(newX)\n",
    "#Find fit parameters starting with 1's as the initial guess\n",
    "mytheta = np.ones((newX_norm.shape[1],1))\n",
    "fit_theta = optimizeTheta(mytheta,newX_norm,y,0.)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n/wOpdOS1KlQJKgAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11eee9f10>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "def plotFit(fit_theta,means,stds):\n",
    "    \"\"\"\n",
    "    Function that takes in some learned fit values (on feature-normalized data)\n",
    "    It sets x-points as a linspace, constructs an appropriate X matrix,\n",
    "    un-does previous feature normalization, computes the hypothesis values,\n",
    "    and plots on top of data\n",
    "    \"\"\"\n",
    "    n_points_to_plot = 50\n",
    "    xvals = np.linspace(-55,55,n_points_to_plot)\n",
    "    xmat = np.ones((n_points_to_plot,1))\n",
    "    \n",
    "    xmat = np.insert(xmat,xmat.shape[1],xvals.T,axis=1)\n",
    "    xmat = genPolyFeatures(xmat,len(fit_theta)-2)\n",
    "    #This is undoing feature normalization\n",
    "    xmat[:,1:] = xmat[:,1:] - means[1:]\n",
    "    xmat[:,1:] = xmat[:,1:] / stds[1:]\n",
    "    plotData()\n",
    "    plt.plot(xvals,h(fit_theta,xmat),'b--')\n",
    "\n",
    "plotFit(fit_theta,stored_means,stored_stds)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nK69k4cKFrsTy4osv0rFjx1OW7927l4iICP74449ibe/hhx/m3Xff9UpsISEhpKb+04/poosuYvXq\n1V7ZtpO0kQ9yRc2fnRCrne9yBNI8427TXNkTCHl69dVXueeee3jsscfYvXs3mzdvZtiwYXz11VcF\nrp+V5ez1Lvr168fixYvZtGnTScunTJlCs2bNaNKkiaP7L0qgzsWvjXwZpsPolCq70tPTGTlyJGPG\njKFHjx5ERkYSGhrKFVdcwQsvvADAqFGjuP766+nfvz8xMTFMmDCB48eP869//Yu6detSr149RowY\nwYkTJwDriLt79+7ExsZStWrVk47KX3zxRerVq0d0dDSNGzdm3rx5p8RUt25dOnXqxKRJk05aPmnS\nJAYMGABAamoqycnJVKtWjRo1atCvXz/S09MLfI+jRo2if//+J20nPj6e6tWr89xzz5207i+//MKF\nF15IbGwsdevW5a677iIzMxOAjh07YoyhWbNmREdH8+mnnzJ//nzq16+f+/o1a9bQqVMnYmNjOffc\nc0/6oTRo0CDuvPNOunXrRnR0NO3atWPDBt/87dVGPsgVVRfUYXT/0PqpfZore/w9T4sXL+bYsWNc\nffXVRa43ffp0brjhBvbv30+fPn145pln+Pnnn1mxYgXLly/n559/5plnngGsq9TVr1+fvXv3snv3\n7tyGdN26dYwePZolS5aQnp7OzJkziY+PL3B/AwYMOKmRX7t2LcuXL6d3794AGGN45JFH2LlzJ6tX\nr2br1q08+eSThcafcwT+xx9/cMcddzB58mS2b9/O3r172bZtW+56oaGhvP7666SlpbF48WLmzp3L\nmDFjAJg/fz4AK1euJD09neuvv/6kbWdmZtK9e3e6du3K33//zX/+8x/69u3Ln3/+mbv9jz/+mFGj\nRrF//34aNmzIo48+WmTevSXMJ3tRfimn450xJmBPRSkV6GSUd/7vmZHFG6a3d+9eqlWrRkhI0cd6\n7dq1o3v37gCUL1+eDz/8kNGjR1O1alUARo4cyW233caoUaMIDw9nx44dbNiwgYYNG9K+fXvAakCP\nHz/O77//TtWqVWnQoPCrX15zzTXccccd/Pjjj7Rt25ZJkyZx+eWX5+6vYcOGNGzYEICqVasyYsQI\nnnrqqdO+388//5zu3bvnxvT000/z5ptv5j7fsmXL3PsNGjTglltuYf78+QwfPjx3eWFDIRcvXsyh\n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\nuSr1PxPoXmFwHgupAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11ef11bd0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "def plotPolyLearningCurve(mylambda=0.):\n",
    "\n",
    "    initial_theta = np.ones((global_d+2,1))\n",
    "    mym, error_train, error_val = [], [], []\n",
    "    myXval, dummy1, dummy2 = featureNormalize(genPolyFeatures(Xval,global_d))\n",
    "\n",
    "    for x in xrange(1,13,1):\n",
    "        train_subset = X[:x,:]\n",
    "        y_subset = y[:x]\n",
    "        mym.append(y_subset.shape[0])\n",
    "        train_subset = genPolyFeatures(train_subset,global_d)   \n",
    "        train_subset, dummy1, dummy2 = featureNormalize(train_subset)\n",
    "        fit_theta = optimizeTheta(initial_theta,train_subset,y_subset,mylambda=mylambda,print_output=False)\n",
    "        error_train.append(computeCost(fit_theta,train_subset,y_subset,mylambda=mylambda))\n",
    "        error_val.append(computeCost(fit_theta,myXval,yval,mylambda=mylambda))\n",
    "        \n",
    "    plt.figure(figsize=(8,5))\n",
    "    plt.plot(mym,error_train,label='Train')\n",
    "    plt.plot(mym,error_val,label='Cross Validation')\n",
    "    plt.legend()\n",
    "    plt.title('Polynomial Regression Learning Curve (lambda = 0)')\n",
    "    plt.xlabel('Number of training examples')\n",
    "    plt.ylabel('Error')\n",
    "    plt.ylim([0,100])\n",
    "    plt.grid(True)\n",
    "    \n",
    "plotPolyLearningCurve()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 3.2 Optional: Adjusting the regularization parameter"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Warning: Desired error not necessarily achieved due to precision loss.\n",
      "         Current function value: 7.828602\n",
      "         Iterations: 4\n",
      "         Function evaluations: 91\n",
      "         Gradient evaluations: 78\n"
     ]
    },
    {
     "data": {
      "image/png": "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\nrkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11ef02d10>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\nmzaN7du3c9NNNwHQs2dPzjjjDF599VX++c9/Fryvo446CoCBAwfyt7/9bZ8xR4KKfILbV19QM+w9\n8dA/jRXKlT9+81TW4hwpDRo0YN26deTl5ZVa6MOHpAFWrlxZqEinp6ezcuVKAG688UbuvPNOTjnl\nFMyMSy+9lJtuuok2bdowYsQI7rzzTubMmcMf//hHHnnkEQ444IC9Xq9mzZqce+65vPzyyxx33HGM\nGTOGxx57rOD+NWvWcN111/H555+zbds2cnNzqV+//j7f78qVKwu9l1q1ahVsOAAsWLCAYcOGMWPG\nDHbu3ElOTk5BUd6X3377ba88paenFxopaNq0aaHX3rZtm6917y8N11dyGq4XqZy6dOlC9erVee+9\n90p9XNEJZ82bNy80MW7p0qU0a9YMgDp16vCvf/2LhQsXMm7cOB599NGC3nu/fv34/PPPC5578803\nl/iaQ4YM4Y033uDTTz9l27ZtnHHGGQX33XrrrSQlJTF79mw2bdrEK6+84utkQwcccADLlu2Zf7Rj\nxw7Wr19fcPuKK66gXbt2LFy4kE2bNnHffff5PolRs2bNCq0b4Ndff6V58+a+nh9NKvIJbp89eZ3a\nFoj9/mksUa78ifU8paSkcNddd3HVVVfx/vvvF+y9fvzxx6UW4H79+nHvvfeybt061q1bxz333FMw\nue3DDz9k4cKFANStW5cqVaqQlJTEzz//zOTJk8nOzqZatWrUrFmz1NGDbt26Ua9ePS677DL69etH\nlSp7Bp23bt1KnTp1qFu3LitWrODhhx/29X7PPfdcxo8fz1dffcXu3bv55z//WaiIb926lZSUFGrV\nqsW8efN4+umnCz2/adOmhQ6hC3fsscdSq1YtHnroIXJycsjKymL8+PEF8wiCpCJfyWlPXqTyGjZs\nGI8++ij33nsvjRs3plWrVjz11FOlTsa7/fbbOfroo+nYsSOHH344Rx99dMEksgULFnDSSSdRt25d\nunbtylVXXUX37t3ZtWsXN998M40aNaJZs2asXbuWBx54oNTYLrzwQn799VcuvPDCQsvvuOMOZs6c\nSWpqKn369OGcc84pdH9Jh7odeuihjBw5kv79+9OsWTMaNGhAixYtCu7/17/+xZgxY0hJSeHyyy+n\nX79+hZ5/5513cuGFF1K/fn3eeuutQvdVrVqVDz74gI8++oiGDRty9dVXM3r0aA466KBSY6oIOnd9\nJZfn8qh1Xy023rSRmlVrBh2OSMLRueulrHTueomYJEuiVb1WLNm0JOhQREQkwlTkE5yfvqCG7GO/\nfxpLlCt/lCeJBSryosl3IiIJSj15YfgXw1m7Yy3/OuVfQYciknDUk5eyUk9eIkrD9SIiiUlFPsH5\n6slruF790zJQrvxRniQW6LS2oj15kShKT0+P268plWCkp6dHbF3qyQvOOVIeTGHZ9ctIrZEadDgi\nIlIM9eSlXMxMQ/YiIglIRT7B+e0LVvYhe/VP/VOu/FGe/FGeoiuwIm9mt5jZbDP7wczGmFk1M0sz\ns0/MbL6ZTTCzekHFV9loT15EJPEE0pM3s3RgMtDWOZdtZq8DHwGHAuudcw+Z2U1AmnNur69DUk8+\n8h6f/jgLNizgyd5PBh2KiIgUI5568luAbKC2mVUBagIrgL7AS6HHvASU/FVIElGVfbheRCQRBVLk\nnXMbgUeAX/GK+2bn3GdAE+fc6tBjVgGNg4gvkfjuyVfy4Xr1Bf1TrvxRnvxRnqIrkCJvZq2B64F0\noBneHv1AoOgYvMbkK0hmWiZLNi3R6TdFRBJIUCfDORr40jm3AcDM3gWOB1abWRPn3GozawqsKWkF\nQ4cOJSMjA4DU1FQ6depEjx49gD1bhrrdgx49evh+fO1qtVm9fTXzZsyLmfgr8na+WIknVm/nL4uV\neHQ7vm/nL4uVeGLpdlZWFi+++CJAQb0rq6Am3h0OvAIcA+wCXgC+BVoBG5xzwzXxruJ1/m9nHj/1\ncbq07BJ0KCIiUkTcTLxzzn0PvAzMBL4HDHgWGA6cbGbzgV7Ag0HEl0jytwr9qMyT78qSp8pOufJH\nefJHeYquwM5d75x7GHi4yOINwEkBhCNA69TWlXrynYhIotG566XAszOf5ZsV3zDqzFFBhyIiIkXE\nzXC9xKbM1Mo7XC8ikohU5BNcmXvylXS4Xn1B/5Qrf5Qnf5Sn6FKRlwKt6rVixdYV5OTlBB2KiIhE\ngHryUkirx1oxZegUMtMygw5FRETCqCcv+60yH0YnIpJoVOQTXFn7XZX1HPbqC/qnXPmjPPmjPEWX\nirwUohn2IiKJQz15KeTl719mwsIJjDl7TNChiIhIGPXkZb9V1uF6EZFEpCKf4Mrck6+kE+/UF/RP\nufJHefJHeYouFXkppFndZmzcuZGdu3cGHYqIiOwn9eRlLwf/+2De7/c+7Rq1CzoUEREJUU9eIqKy\nDtmLiCQaFfkEV55+V2WcfKe+oH/KlT/Kkz/KU3SpyMtedKy8iEhiUE9e9vLG7Dd4ffbrvH3+20GH\nIiIiIerJS0RUxuF6EZFEpCKf4MrVk6+EE+/UF/RPufJHefJHeYouFXnZS4OaDcjJy2HT75uCDkVE\nRPaDevJSrI5Pd+Sls17iiAOOCDoUERFBPXmJoMo4ZC8ikmhU5BNceftdlW3ynfqC/ilX/ihP/ihP\n0aUiL8XSsfIiIvFPPXkp1rj543hm5jN8OODDoEMRERHUk5cIqmzD9SIiiUhFPsGVuyeflsmSTUuo\nLCMm6gv6p1z5ozz5ozxFl4q8FKtOtTrUrlab1dtXBx2KiIiUk3ryUqLO/+3M46c+TpeWXYIORUSk\n0lNPXiJKx8qLiMQ3FfkEtz/9rso0+U59Qf+UK3+UJ3+Up+hSkZcS6Vh5EZH4pp68lOiThZ8w/Mvh\nTLxwYtChiIhUeurJS0RVpuF6EZFEpCKf4Pan39WqXitWbF1BTl5O5AKKUeoL+qdc+aM8+aM8RZeK\nvJSoepXqNK7dmOVblgcdioiIlIN68lKqP7zwB+7qcRc9M3sGHYqISKWmnrxEnI6VFxGJXyryCW5/\n+12VZfKd+oL+KVf+KE/+KE/RpSIvpdKx8iIi8Us9eSnV1KVTuWXiLXx58ZdBhyIiUqmpJy8RV1mG\n60VEEpGKfILb335Xs7rN2LBzAzt374xMQDFKfUH/lCt/lCd/lKfoUpGXUiUnJdOyXkuWbl4adCgi\nIlJG6snLPp0y+hSuP+56TjvotKBDERGptNSTl6jQDHsRkfikIp/gItHvykxL/Ml36gv6p1z5ozz5\nozxFV2BF3szqmdmbZjbXzGab2bFmlmZmn5jZfDObYGb1gopP9tCevIhIfAqsJ29mLwJTnHMvmFkV\noDZwK7DeOfeQmd0EpDnnbi7muerJV6BvVnzDFR9ewczLZgYdiohIpRU3PXkzSwG6OedeAHDO5Tjn\nNgN9gZdCD3sJOCuI+KQwHSsvIhKfghquzwTWmdkLZvadmT1rZrWAJs651QDOuVVA44DiSxiR6Hc1\nrNWQ7NxsNv++ef8DilHqC/qnXPmjPPmjPEVXlQBf90jgKufcDDN7DLgZKDoGX+KY/NChQ8nIyAAg\nNTWVTp060aNHD2DPL41uR+b2lClTaLS2EYs3LaZT006BxxON27NmzYqpeGL59qxZs2Iqnli9nS9W\n4onV2/p9Kvl2VlYWL774IkBBvSurQHryZtYEmOacax26fQJekW8D9HDOrTazpsBk51y7Yp6vnnwF\nO/PVM7kFIk4nAAAgAElEQVSo00X8qd2fgg5FRKRSipuefGhIfpmZHRxa1AuYDYwDhoaWDQHer/jo\npDiaYS8iEn+CPE7+WmCMmc0CDgfuB4YDJ5vZfLzC/2CA8SWEokOH5ZXox8pHKk+VgXLlj/Lkj/IU\nXUH15HHOfQ8cU8xdJ1V0LLJvmamZfLbos6DDEBGRMtC568WXH1b/QP+3+zP7ytlBhyIiUinFTU9e\n4k9maiZLNi1BG1ciIvFDRT7BRarfVbd6XWpVrcWa7Wsisr5Yo76gf8qVP8qTP8pTdKnIi2+aYS8i\nEl/UkxffLnjrAs465Cz6d+gfdCgiIpWOevISVdqTFxGJLyryCS6S/a5E/qIa9QX9U678UZ78UZ6i\nS0VefMtM0568iEg8UU9efFuwfgGnjjmVhdcuDDoUEZFKRz15iapW9VqxfMtycvJygg5FRER8UJFP\ncJHsd1WvUp3GtRuzfMvyiK0zVqgv6J9y5Y/y5I/yFF0q8lImiTz5TkQk0agnL2Uy5L0hdE/vzsVH\nXBx0KCIilUpUevJmlmxm/yp/WJJItCcvIhI/9lnknXO5wAkVEItEQaT7XYl6Qhz1Bf1TrvxRnvxR\nnqLL7/fJ/5+ZjQPeBLbnL3TOvROVqCRm6Vh5EZH44asnb2YvFLPYOecCacyqJx+cZZuXceyoY1n5\nt5VBhyIiUqmUpyfva0/eOXdR+UKSRNOsbjM27NzAzt07qVm1ZtDhiIhIKXwdQmdmLczsXTNbE7q8\nbWYtoh2c7L9I97uSk5JpWa8lSzcvjeh6g6a+oH/KlT/Kkz/KU3T5PU7+BWAc0Cx0+SC0TCohzbAX\nEYkPfnvys5xznfa1rKKoJx+syz+4nMObHs6Vx1wZdCgiIpVGNM9dv97MBoWOmU82s0HA+rKHKIkg\nM0178iIi8cBvkb8YOB9YBfwGnAtoMl4ciEa/KxGPlVdf0D/lyh/lyR/lKbr2ObvezJKBs51zZ1ZA\nPBIHdKy8iEh88NuT/8Y517kC4vFFPflgrd2+lkOePIQNN20IOhQRkUojasfJA1+a2ZPA6xQ+4913\nZXkxSQwNazUkOzebzb9vpl6NekGHIyIiJfDbk+8EtAfuBh4JXfSlNXEgGv0uM0u4IXv1Bf1TrvxR\nnvxRnqLLT08+CXjaOfdGBcQjcSL/WPlOTQM5ilJERHzw25Of4Zw7ugLi8UU9+eBd9/F1pKemM6zL\nsKBDERGpFKJ5nPxnZnaDmbU0s/r5l3LEKAlCx8qLiMQ+v0X+AuAqYCowM3SZEa2gJHKi1e9KtGPl\n1Rf0T7nyR3nyR3mKLr/fQpcZ7UAkviTaxDsRkURUak/ezP7unHsodP0859ybYffd75y7tQJiLC4u\n9eQDtnXXVpo+0pRtt2zDrEwtIhERKYdo9OT7hV2/pch9p5blhSSx1K1el5pVarJm+5qgQxERkRLs\nq8hbCdeLuy0xKJr9rkQasldf0D/lyh/lyR/lKbr2VeRdCdeLuy2VjL5XXkQktu2rJ5+LdxpbA2oC\nO/LvAmo456pGPcLi41JPPgbc9OlN1KtRj1u7BTI1Q0SkUon4ueudc8n7F5Ikssy0TGaunBl0GCIi\nUgK/x8lLnIpqTz6BjpVXX9A/5cof5ckf5Sm6VOSl3BJp4p2ISCLyde76WKOefGzYlbOLlAdT2HHr\nDpKT1NkREYmmaJ67XmQv1atUp1GtRizfsjzoUEREpBgq8gku2v2uRBmyV1/QP+XKH+XJH+UpulTk\nZb/oWHkRkdilnrzslzsm34HDcXfPu4MORUQkoaknLxUuUYbrRUQSkYp8got6Tz5BhuvVF/RPufJH\nefJHeYquQIu8mSWZ2XdmNi50O83MPjGz+WY2wczqBRmf7Jv25EVEYlegPXkzux44Ckhxzp1pZsOB\n9c65h8zsJiDNOXdzMc9TTz5G5OblUuv+Wmy+eTM1qtQIOhwRkYQVVz15M2sB9AZGhS3uC7wUuv4S\ncFZFxyVlk5yUTMuUlizdtDToUEREpIggh+sfA26k8FfWNnHOrQZwzq0CGgcRWCKpiH5XIgzZqy/o\nn3Llj/Lkj/IUXaV+C120mNnpwGrn3Cwz61HKQ0sckx86dCgZGRkApKam0qlTJ3r08FaV/0uj2xVz\nu/qy6kzYPoFTDzw1JuIpz+1Zs2bFVDyxfHvWrFkxFU+s3s4XK/HE6m39PpV8OysrixdffBGgoN6V\nVSA9eTO7HxgE5OB9T31d4F3gaKCHc261mTUFJjvn2hXzfPXkY8gDnz/Axt838tDJDwUdiohIwoqb\nnrxz7lbnXCvnXGugHzDJOTcY+AAYGnrYEOD9IOKTskmE4XoRkUQUa8fJPwicbGbzgV6h27Ifig4d\nRkMiHCtfEXlKFMqVP8qTP8pTdAXSkw/nnJsCTAld3wCcFGxEUlbakxcRiU06d73sN+ccdR+oy8q/\nrSSlekrQ4YiIJKS46clLYjEzMlIz4n7IXkQk0ajIJ7iK6nfF+5C9+oL+KVf+KE/+KE/RpSIvEZEI\nk+9ERBKNevISEY9Ne4zFmxbzxGlPBB2KiEhCUk9eAhPvw/UiIolIRT7BVVS/q3Va67gerldf0D/l\nyh/lyR/lKbpU5CUiMlMzWbJpCWqjiIjEDvXkJWIaPtSQOVfNoXFtfXmgiEikqScvgcpM0wx7EZFY\noiKf4Cqy35WZGr+T79QX9E+58kd58kd5ii4VeYkYHSsvIhJb1JOXiPnPjP/w3W/f8WyfZ4MORUQk\n4agnL4GK5+F6EZFEpCKf4Cq0Jx/HE+/UF/RPufJHefJHeYouFXmJmPR66SzfspzcvNygQxEREdST\nlwhr8WgLvrz4S9JT04MORUQkoagnL4HTOexFRGKHinyCq+h+V7weRqe+oH/KlT/Kkz/KU3SpyEtE\naYa9iEjsUE9eIurFWS8ycfFERv9pdNChiIgkFPXkJXDxOlwvIpKIVOQTXIX35ON04l0s9QXnrJ3D\nrRNvZcDbA1i7fW3Q4ewllnIVy5Qnf5Sn6FKRl4hqXrc563as4/ec34MOJa6s2raKx6Y9xlHPHsXJ\no08mJy+HpnWa0uW5Lvy8/uegwxOROKWevETcgU8cyIcDPuSQhocEHUpM2569nffmvcfoH0bz9Yqv\n6XtIXwZ3HEyPjB4kJyUDMOq7Udw26TbeOu8tuqV3CzhiEQlSeXryVaIVjFRe+UP2KvJ7y83LZeLi\nibzywyt88PMHHN/yeIYcPoR3LniHWlVr7fX4S468hFb1WnHOG+cw4tQRDOgwIICoRSReabg+wQXR\n74rHyXfRzJNzjlmrZvG3CX+j5WMtuW3SbRzd7GjmXTWPDwd8SP8O/Yst8PlOaXMKEy+cyC0Tb+He\nqfcS9CiWeqj+KE/+KE/RpT15iTgdK+9ZtnkZY38cy+gfRrMtexuDOg5i0pBJtG3Ytszr6tCkA9P+\nPI0+r/Zh0cZF/OeM/1AtuVoUohaRRKKevETcaz+9xttz3+bN894MOpQKt2XXFt6a8xav/PAK36/+\nnnPbncugjoPo2qorSbb/A2fbsrcx4O0BbN+9nbfPf5vUGqkRiFpE4oF68hIT4nG4fn/szt3NhIUT\nGP3DaP73y/84MfNEru58Nb0P6k2NKjUi+lp1qtXh3Qve5foJ19P1+a58OOBDMlIzIvoaIpI41JNP\ncIH05OPwWPmy5sk5x9fLv+aaj66h+aPNefCLB+mZ0ZPF1y3m3Qve5ex2Z0e8wOdLTkrmidOe4LIj\nL+P4547n2xXfRuV1SqIeqj/Kkz/KU3RpT14irlGtRuzK2cWWXVtIqZ4SdDgRtWjjIl754RVe+eEV\nAAZ3HMz0S6bTOq11hcdy3XHXkZGaQe+xvRnVZxR92/at8BhEJLapJy9RcdhThzHm7DEc3vTwoEPZ\nbxt2buCN2W8w+ofRLFi/gAvaX8DgwwdzTLNjMCtTeywqZqycQd/X+nLj8Tdy3bHXxURMIhJ56slL\nzMgfso/XIr8rZxfjfx7PKz++wuTFkzn1wFO55YRb+GObP1I1uWrQ4RVydLOj+erirzh97Oks3LCQ\nEaeOKDiZjohUburJJ7ig+l3xNvkuKyuLPJfH50s/57IPLqPZo80Y+e1Izjz4TJb+dSmvnfsaZxx8\nRswV+Hzpqel8cfEXzFs/j7NeP4tt2dui9lrqofqjPPmjPEWX9uQlKuLpWPl1O9bx3HfPcdH3F1G7\nam0GdxzMrMtn0bJey6BDK5PUGql8NOAj/jL+L/zhhT8wfsB4mtVtFnRYIhIg9eQlKt6b9x7P/d9z\nfND/g6BDKdXO3Tvp8VIPDm10KNcdex2HNzk87nvazjke+OIBnpn5DOP7j6dDkw5BhyQiEaCevMSM\neBiud87x53F/pnVaa54/8/m4L+75zIxbu91KZmomvV7uxStnv8IpbU4JOiwRCYB68gkusJ58WiZL\nNi0J/DzrpXngiwf4ZcMvPH/m80yZMiXocCKuf4f+vH3+21z47oX8d+Z/I7Ze9VD9UZ78UZ6iS0Ve\noiKlegrVq1Rn7Y61QYdSrHfnvsvTM57mvX7vUbNqzaDDiZpu6d2YetFUHvrqIW757BbyXF7QIYlI\nBVJPXqLm6GePZmTvkRzb4tigQylk1qpZnDz6ZD4e+DFHNzs66HAqxLod6+j7Wl9apLTgpbNeitrZ\n+EQkesrTk9eevERNLJ7edvW21fR9rS8je4+sNAUeoGGthky8cCKG0evlXqzdHpsjLCISWSryCS7I\nflesTb77Ped3/vT6n7io00Wc3/78QvdVhr5gjSo1GHvOWLqnd6fLc134ef3P5VpPZchVJChP/ihP\n0aUiL1ETS8fKO+e47IPLaJ7SnH92/2fQ4QQmyZK4v9f93HzCzfzhhT/w+dLPgw5JRKJIPXmJmv/9\n8j8emfYInw7+NOhQeOjLh3h99ut8ftHn1KpaK+hwYsKnCz9l4DsDGXHqCAZ0GBB0OCKyDzpOXmJK\nrAzXj5s/jie+foLpl0xXgQ9zcpuTmTRkEqePPZ1FGxdxW7fbEuZcASLiCWS43sxamNkkM5ttZj+a\n2bWh5Wlm9omZzTezCWZWL4j4EkmQ/a701HSWbVlGbl5uYDH8uPpHLhl3Ce9c8A4tUlqU+LhY6wvm\n5sLiCtg+OqzxYUz/83Tenfcufx73Z7Jzs/f5nFjLVaxSnvxRnqIrqJ58DjDMOdce6AJcZWZtgZuB\nz5xzhwCTgFsCik8ioEaVGjSs1ZAVW1cE8vprtq/hzNfOZMSpI+jcvHMgMZRHdjYMHAjt28Mxx8CL\nL8LOndF7vQPqHsDUoVNZt2Mdp405jU2/b4rei4lIhQqkyDvnVjnnZoWubwPmAi2AvsBLoYe9BJwV\nRHyJpEePHoG+flBD9rtydnHOG+cwsMNAX/3moPOUb9s2OOMMr9CvWwd33glvvgmtWsGNN8KiRdF5\n3drVavPuBe9yWKPD6Pp8V5ZsWlLiY2MlV7FOefJHeYquwGfXm1kG0AmYDjRxzq0Gb0MAaBxcZBIJ\nQRwr75zjig+voFGtRtzd8+4Kfe39sW4d9OrlFfQ33oBateD00+HDD2H6dDCDY4+F3r29ZbkR7oIk\nJyXz+GmPc/lRl9P1+a58u+LbyL6AiFS4QIu8mdUB3gKuC+3RF50yryn0+ynoflcQe/KPTnuU7377\njpf/9DJJ5u9XPOg8LVsG3brBiSfCf/8LVYpMiW3TBh56CH79Fc4/39vDP+ggb9m6dZGN5dpjr+Xp\n05+m99jevDfvvb3uDzpX8UJ58kd5iq7AZtebWRW8Aj/aOfd+aPFqM2vinFttZk2BNSU9f+jQoWRk\nZACQmppKp06dCoZ98n9pdDv425mpmbw6/lWyLKtCXu+jBR9x/+j7eer0p6hTrY7v58+aNSuwfL38\nchY33gg33dSDYcNKf3zNmpCRkcXDD0Pt2j0YOdK73bUr3HNPDzp3jkx8KaTw8cCP6ftaXz6b9Bnn\ntDuHnj17AjBr1qwKzU+83s4XK/HE6m39PpV8OysrixdffBGgoN6VVWDHyZvZy8A659ywsGXDgQ3O\nueFmdhOQ5py7uZjn6jj5OJG1JIt/TP4Hn18U/ZOuzF4zm54v9eT9fu/TpWWXqL9eJHzzDZx5prdH\nfuGF5VvH+vXw/PPw9NPQoAFceSX06wc1I/C9O0s3LeX0safTM6MnI04dQXJS8v6vVETKpTzHyQdS\n5M2sKzAV+BFvSN4BtwLfAG8ALYGlwPnOub2m+qrIx4+lm5bS9fmuLB+2PKqvs27HOo4ddSx3dr+T\nwYcPjuprRcqnn3qz6J97Dvr02f/15ebChAkwcqS38TBkCFxxhTfUvz82/76Zc988lxpVavDqOa8W\njJCISMWKmy+occ596ZxLds51cs4d4Zw70jn3P+fcBufcSc65Q5xzpxRX4KVsig4dVrQWKS1Yu2Mt\nu3J2Re01snOzOfeNcznv0PPKXeArOk9vvAGDBsE770SmwAMkJ++ZlPf115CUBMcdB6edBuPHl3+i\nXr0a9fhowEc0rtWYE54/geGvDNdX1voQ9N9evFCeoivw2fWS2JKTkmmR0oKlm5dGZf3OOa7+6Grq\n1ajH/b3uj8prRNrTT8OwYd6e/AknROc1WrfeM1Hvggvg7rvhwANh+PDyTdSrmlyVUWeO4objb+DZ\n756l/VPteWbGM+zYvSPywYtIxOjc9RJ1J718EjcefyN/PPCPEV/349Mf57n/e44vL/6SutXrRnz9\nkeQc3HMPvPwyfPKJV4gr0rffekP5770Hfft6vfvOnb1D88rCOUfWkiwem/4Y05ZP49IjL+WqY66i\neUrz6AQuIkAcDddL5RKtb6Ob8MsEHvzyQcb1HxfzBT4vD6691hue/+KLii/wsOfseQsXwmGHQf/+\n3rLnn4cdZdghNzN6ZvZkXP9xfHXxV2zdtZUOT3dg0DuDmLFyRtTiF5GyU5FPcLHQ78pMi/yx8vPW\nzWPwu4N587w3yUjN2O/1RTNP2dle//2HH2DKFGjaNGov5UuDBt7Z8375xRvGf/tt7wQ8f/ubt2xf\nwnN1UIOD+Hfvf7Pw2oV0atqJc944h24vdOOdue8E+p0FsSAW/vbigfIUXSryEnWR3pPfsHMDfV7t\nw0MnP8QJraLU1I6Q7du9Q+S2b4f//Q/qxdBXLiUl7Zmo98033sS9Ll28iXoffFC2iXppNdO44fgb\nWHjtQq7pfA0Pf/UwB/77QB6b9hhbdm2J3psQkVKpJy9RN335dK75+Bq+vXT/T5O6O3c3p445lSOa\nHsG/TvlXBKKLng0bvNPStmsHzz6791nsYtHOnd7M/5EjYe1a+Mtf4OKLoVGjsq9r+vLpjJg+gk8W\nfsKFh1/ItcdeS+u0APoUIglCPXmJSZE8te11/7uOmlVqMvyk4RFZX7QsX+6dprZbN+84+Hgo8OCd\nQGfIEG/P/o03YN487/S5F17onT+/LNvWx7U4jtfOfY3v//I91ZOr0/m/nTn79bOZunQq2kgXqRgq\n8gkuFvpdjWs3ZmfOTrbu2rpf6xn5zUimLp3K2HPGRvzMa5HM0/z53qFxQ4d6h7GVdfZ6rDjmGHjh\nBW+iXocOMGAAHHkkDByYxYQJ3jfm+dGyXkuGnzycJX9dQq/MXlwy7hKO/u/RvPLDK76+vz5excLf\nXjxQnqJLRV6izszISM3Yr778pws/5Z6p9zCu/zhSqqdEMLrImjEDevSAO+7wJrclgvCJeo8+6vXy\n77vPm0B47LHw9797ff3Nm0tfT51qdbiq81XMu3oed/W4ixdmvUDm45ncN/U+1u2I8LfsiAignrxU\nkDPGnsGlR15K37Z9y/zcn9f/TLcXuvHGuW/QPaN7FKKLjIkTvcPSRo3yJtslup07vSH8KVO8y7ff\nQtu20L27d+nWDdLSSl/HD6t/YMT0Ebw7713OP/R8rjvuOg5tdGjFvAGROBM3567fXyry8efaj71J\nV3897q9let7GnRs57rnjuPH4G7nkyEuiFN3+e+st7+Qyb77pFbjKaNcur5efX/SnT/fOm59f9P/w\nB2jYsPjnrt62mv/M+A9Pz3iaTk07cf1x13NKm1OweO11iESBJt7JXmKl31WeyXc5eTmc/9b59D6w\nd9QL/P7k6dlnvRPdTJhQOQp8SbmqXt3be7/9du+UvevXe6fwPeAAL0etW3u9/auv9jaG1oR9kXST\nOk24o8cdLPnrEi5ofwF//+zvtH+qPc/OfJadu3dWzBuLsFj524t1ylN0qchLhchMK/ux8sMmDCPZ\nknn4lIejFNX+cc7rTT/4IEydCkccEXREsaVaNe+4+5tv9s4RsGGDd6RBejq89BIcfLB3eOEVV8Br\nr8Fvv0GNKjW46IiLmHX5LJ7s/STjfx5P+oh0bpt4Gyu3rgz6LUmE5eTlsGLLClZsWcHm3zeTk5cT\ndEgJR8P1UiG+X/U9g94dxI9X/Ojr8c/MeIYRX49g+p+nU69GDJ1BJiQvz/uSmUmTvD34Aw4IOqL4\nk5sL33/vDe1nZcHnn3vD+fnD+927Q8uWsGD9Ah7/+nHG/jiW0w8+nb8e+1eOanZU0OFLOeS5PH5a\n8xMTF01k0pJJfL70c9JqppGdm8227G1sy95GteRq1KlWh9pVa1OnWp1iL6XeV23v+2pWqZkQrR/1\n5CVmbdm1hWaPNGPrLVv3+cc2efFk+r3djy8v/pID6x9YQRH6t3u3d4KYxYu9M8Pta3KZ+JOXBz/+\nuKenP3UqpKTsKfidjtvIJ+tG8e9v/k1GagbXH3c9Zx5yZsQPp5TIWrRxERMXTWTi4olMWjyJejXq\n0SuzF70ye9EzsycNa+2ZqOGc4/ec39m+e3tB0S962Z5dzH27S79/V+4ualetXewGQHEbDak1Uunc\nvDNHHnAkVZJi5yQXKvKyl6ysLHr06BF0GAA0eKgB866aR6PaJZ8+7ZcNv3DC8ycw9pyxnJh5YoXF\n5jdPO3bAeed5x76/8QbUqhX92GJNRf1O5eXB3Ll7in5WFtSoAd2676bOMe/yddJjbM5ZzTWdr+Gk\n1idxUIODqFGlRtTj8iuW/vYq0qptq5i0eFLB3vrvOb8XFPVerXvRql6rQo+viDzl5uWyfff24jcQ\nwjcgQhsXa7ev5avlX/Hr5l85odUJ9MzoSc+MnnRq2inQjcryFPnY2USRhJd/DvuSivzm3zdz5qtn\ncmePOyu0wPu1YQP06eN9L/uoUVC1atARJbakJGjf3rtceaU3B2L+fJgypSpTppzPminns7vJdJ74\n9SkerPdfNrKIA2o357AD2tGuYVvaNmxLu4btaNuwLQ1qNQj67SSszb9vJmtJllfYF09kxdYV9Mjo\nQa/MXtxw/A20bdg28KHy5KRkUqqnlPkcG2u2r2HKkilkLcni+f97nt+2/Ua3Vt3okdGDnhk96dik\nY8yPJGlPXirMeW+ex7ntzuWCwy7Y676cvBz6vNqHA9MO5N+9/x1AdKVbsQJOPRVOOQUeftgrQBIs\n57yz8U2d6g3z/zR3Nz8uX8TG5Hk0bDuPGi3msbveXNbbPKpXrcqhjdtyaCOv6Odf0uulx/w/6Viz\nc/dOvlr2FRMXe0Pwc9bOoUuLLpyYeSK9Mntx5AFHJmxOV29bTdaSLLKWZDF5yWTWbF/DH9L/UFD0\nOzTpQJJF75+Dhuslpv39079Tv2Z9bj7h5r3uu/5/1/PT2p/4eODHMdUDA1iwwCvul18ON90Uv6ep\nrSy2bPGG+efMCV3mOn5ctJpVufNo1G4utdPnkVd/HpurzmNb3loOanAQ7Rq1pW2DtrQLbQQc3OBg\nalWthL2YYuTk5TBj5YyCvvq3K7+lQ+MOBcPvXVp0oXqV6kGHGYjftv5WqOiv37me7und6ZnRkx4Z\nPWjfuH1Ei76KvOwllvqCT3/7NBPnzGJI/Wc47DDvUKqkJBj13Sge/uphpv95Omk1g5nFVlKevvsO\nzjjD+971S2L3XDwVKpZ+p8pi+3ZvuL+g+M+B2Qu28ev2n2nYdh4pbeZiDeexrcY81uT8QpM6TTi0\ncTvaNggN/Yc2ABrVauRr+Dle8+ScY/ba2QVFferSqaSnphf01buld4voqaXjNU/FWbFlRaGiv3nX\n5kJF/9BGh+5X60I9eYlZeXkw47NMxi18l23LYfZs2LgRWnSdytJjb+PaOp8zPSuN9u29w6ZiYW95\n8mS44AL4z3/g7LODjkb2V+3a3hfsHHlk+NI6/P77kSxYcOSe4v8dzJ6by8L1i9l9yDx+PWgek5p+\nw47aL7Mmby7JyRTq9+dfMtMyY24Uyq/FGxcXDL9PWjyJOtXq0CuzFwM7DGTUmaNoXLtx0CHGheYp\nzRnYcSADOw4EYNnmZQVF/5Fpj7B99/ZCRb8i5itoT16ibs0a76tK1+TOZ+NpZ7B42AIAvv91ESeO\nOZ4hdUeT98vJzJ7tFf9t2+DQQ+Gww/ZMvGrfHpo1q7ji/+673vD8669Dz54V85oSW3bv9nr+hfb8\n5zh+XraOegfOLej7Z6fMYx1z2bh7FW3qtyko+k1qN6F6lepUS65G9eTqVK9SvdDPasnV9loWfl+1\n5GpRKwCrt61m0uJJBZPlduzeQa/W3p76iZknkpGaEZXXreyWblpasJc/eclksnOz6ZHRgx7pPeiZ\n2ZOD6h9U6meu4XqJOZMmeQV+yBC4+fbfafRIKttv3c723ds5/rnj+cvRf+HqzlcXes6GDd4/1J9+\noqDwz54N2dmFi37+pUmTyBb/UaPgH//wvlmt8F6fiHcSn8WLvd/RQr3/BTuo3XIBTQ6bR630uVRP\nXU+N2ruoVmsXVWrsIqlKNrtyd7ErZ9deP7Nz975vd97uvTYQ9rVhULCsyP356/lt229MXDyRZZuX\n0T2je8EQ/P4OI0v5LN64uFDRz3N5hYp+m7Q2hT4XFXnZS1D9rpwcr489apR3CtOTT/aWN3+0OV9e\n/CVXf3Q1LVNa8tTpT/n+57J2beGiP3u2tyFgtnfhP+ywkr8MpThZWVl0796D4cPhmWe8s9gdfHA5\n3vLJJZUAAA7VSURBVHglkEg91EjKy4Nly/YU/c8/zyIvrwe//uot37EDWrSAVq28llTLlnuu5/+s\nWzdsfS6P7NxsbwPA54bBvu6rX7M+J2aeGFMnedHvk8c5x6KNiwoV/SRLKlz067dRT16Ct3w5DBjg\nfWHJd9953zueLzM1k6HvDSXJknjitCfKtPfQqJH3Xe3h/w+cg9Wr9xT977+HsWO969Wr713427cv\n/gx1eXlwww1ecf/iC2jevNxvXyqppCRvMml6Opx2Ghx1VOHf1e3bvWK/bBkFhX/6dO+kSvnLqlUL\nL/xJtGxZg1atahRsFLRs4T1GEo+Z0aZ+G9rUb8Ofj/wzzjl+2fALk5dMZuLiidw++fbyrTce94i1\nJx+7xo/3ZqFfe633xSRFjycf/O5gpi2bxteXfB3VE5Q4BytX7tnbz98ImDMH6tTZu/D/5z/wyy/e\naWrr149aWCIlcs5rVYVvBOT/zL/+22/QoEHpowFNmug8DonIOUdSUpKG6yUY2dneMeTvvOPtSXft\nWvzj5q+bT82qNfc6tWVFcc77Z1l02D8zE158sXKeplbiR26uV+iLjgiEbwxs2uSNRIUX/vzrjRp5\nI1zVqnmX4q4nJ+Z5bBKCevKyl4rody1cCP36ef9Ynn8+PveE1Rf0T7nyJ6g8/f671zIrOgqwbJk3\nr2X3bti1y9swz87e+7pZyRsApW0c7Ou+kh63YEEWJ5/cgyZNoHFjtSNKo+PkpcK9/jpcc403G/3q\nq2Pj+HaRyqxGDe/7FQ4s5xc45uQUvwFQ3AaB38dt3lzyfcuWef9HVq/2NkLq1vVaDsVdmjYtfLt6\ngp9ozzlvwuamTV4Oy0N78lIuO3bAX//qnTDm9dd1qJmI7L+8PG9ewurVhS+rVu29bM0ar722rw2B\n/EvNmhX/fvI3cDZv3lOoy3J9yxbvi7Dq1fMu8+druF4qwOzZ3pngDj/cm7AWftiPiEhFcM47a2Zp\nGwLhl+rV970hkH+pXdub/7Bli7+iXNL9OTmQmrqnSJf1er16hdsX6snLXiLZF3QOnnsObrkFHnoI\nhg5NnOF59Zn9U678UZ78qYg8OecVXT8bA6tXe4/fvdvbgSlPcc6/XrNmZP9HqicvUbNli3ea159+\n8r7as127oCMSEfHHzCu8qalwyCGlP9Y52LnTm9uQCIciak9e9mnmTG94/qST4LHHgultiYhUduXZ\nk0+A7RSJFudgxAjv7F0PPOD131XgRUTih4p8gsvKyirX89avh759vRPbTJ8O550X2bhiTXnzVBkp\nV/4oT/4oT9GlIi97+fxzOOII7wtavvgCWrcOOiIRESkP9eSlQG6uNyz/5JPeLPrTTw86IhERyafZ\n9VJuv/0GgwZ5hX7mTH0Lm4hIItBwfYLz0++aMME7Y123bjBxYuUs8OoL+qdc+aM8+aM8RZf25Cux\n3bu9c86/8gq8+mrh774WEZH4p558JbV0KfTv750c4qWXvK+gFBGR2KXj5MWXd96BY46Bs8+G8eNV\n4EVEEpWKfIIL73f9/rv3dbA33AAffOD9TITTNkaC+oL+KVf+KE/+KE/RpX/xlcT8+XDccd7XM373\nHRx7bNARiYhItKknXwmMHg3DhsG998JllyXON8eJiFQmOk5eCtm2zRue//pr79C4jh2DjkhERCpS\nTA7Xm9mpZjbPzH42s5uCjidenXMOrFqVxYwZKvD7or6gf8qVP8qTP8pTdMVckTezJOBJ4I9Ae6C/\nmbUNNqr4NGYMnHrqLGrXDjqS2Ddr1qygQ4gbypU/ypM/ylN0xVyRBzoDC5xzS51zu4HXgL4BxxSX\nGjaETZs2BR1GXFCe/FOu/FGe/FGeoisWi3xzYFnY7eWhZSIiIlIGsVjkJYKWLFkSdAhxQXnyT7ny\nR3nyR3mKrpg7hM7MjgPudM6dGrp9M+Ccc8PDHhNbQYuIiFSAsh5CF4tFPhmYD/QCfgO+Afo75+YG\nGpiIiEicibnj5J1zuWZ2NfAJXjvhORV4ERGRsou5PXkRERGJjLibeKcT5eybmbUws0lmNtvMfjSz\na4OOKZaZWZKZfWdm44KOJZaZWT0ze9PM5oZ+t/QNCMUws1tC+fnBzMaYWbWgY4oVZvacma02sx/C\nlqWZ2SdmNt/MJphZvSBjjAUl5Omh0N/eLDN728xS/Kwrroq8TpTjWw4wzDnXHugCXKU8leo6YE7Q\nQcSBx4GPnHPtgMMBtdGKMLN04FLgCOdcR7yWaL9go4opL+D9/w53M/CZc+4QYBJwS4VHFXuKy9Mn\nQHvnXCdgAT7zFFdFHp0oxxfn3Crn3KzQ9W14/4x1roFimFkLoDcwKuhYYllor6Gbc+4FAOdcjnNu\nS8BhxaItQDZQ28yqALWAlcGGFDucc18AG4ss7gu8FLr+EnBWhQYVg4rLk3PuM+dcXujmdKCFn3XF\nW5HXiXLKyMwygE7A18FGErMeA24ENDmldJnAOjN7IdTaeNbMagYdVKxxzm0EHgF+BVYAm5xznwUb\nVcxr7JxbDd4OCtA44HjiwcXAx34eGG9FXsrAzOoAbwHXhfboJYyZnQ6sDo16WOgixasCHAmMdM4d\nCezAG2aVMGbWGrgeSAeaAXXMbECwUcUdbXCXwsxuA3Y758b6eXy8FfkVQKuw2y1Cy6SI0FDhW8Bo\n59z7QccTo7oCZ5rZIuBVoKeZvRxwTLFqObDMuf9v725j7KjqOI5/f21oeKqUAlEwKVBBeWViwYCw\nYZXaxhiDUgu2acNieVKIRaUvTNViYpOlNpqQaIiAVALFBAxaaIh9chuCtOyWbsvyVK2iNUbtCypp\nCG6l+/fFOavnjvfu3iLsvXvz+ySTPTNz5sx/Znb3zDkzmRO78vzPSZW+1boI+E1EvBYRR4HHgEtb\nHFO7+7uk9wJIeh9wsMXxtC1J15EeLzZ94zjZKvkB4DxJZ+c3VhcBfiO6vvuBlyLirlYH0q4iYmVE\nzIqI2aTfpV9HxLWtjqsd5e7UP0v6YF40F7+sWM8+4BJJx0sS6Tz5BcVa1V6zx4HrcroHcKMkqTlP\nkj5FerR4ZUQMN1tI230MZyz+UE5zJF0GLAGGJA2Sur9WRsSvWhuZTXLLgfWSjgP+AHyxxfG0nYjY\nm3uDngOOAoPAPa2Nqn1Iehj4OHCapAPAHcCdwKOSlgF/Aq5pXYTtocF5WglMA7ak+0d2RsQt45bl\nj+GYmZl1psnWXW9mZmZNciVvZmbWoVzJm5mZdShX8mZmZh3KlbyZmVmHciVvZmbWoVzJmxUkjUha\nW8zfLmnVO1T2OkkL3omyxtnPQkkvSdpWWX62pMVvs8ynm8hzT6eNdijpcKtjMPt/uJI3qzUMLJA0\ns9WBlCRNPYbs1wM3RMTcyvJzafA5zPHKj4iu8XYaETdFxCtNRzk5+EMiNqm5kjer9RbpC2Vfr66o\ntsRHW3mSuiVtl/RLSfsl3SlpqaR+SXslnVsUM0/SgKRX8gA5SJoi6XuSnpW0R9KNRblPSdoAvFgn\nnsWSns9Tb172baAL+ImkNZVNeoGuPIrcbZJ6JG3ILf6tkk6StFXSrhz3lQ2OtU/So5JelvRgkadP\n0pzR/JJW5+N5RtIZeflsSTty+d9t1FKWtCSfj92S7lYyS9JvJc3M809J+mTO/4t8Xock3VDGnc/t\nC5I2S7o4X6v9kj6T8/Tka9cnaV+jnhtJK/I13SPpjrzsREkbJQ3m63B1vW3NWiYiPHnylCfSeOAn\nA68C04HbgVV53TpgQZk3/+wGXiMNkTmNNGjSd/K65cAPiu2fzOnzSMMmTwNuJH12mDw/QBrFrBs4\nDMyqE+eZpE+AziTdrG8jfdMaoA/4SJ1tuoHHi/ke0pCop+T5KcDJOX0a8LsGx3oo71/AM8ClxX7n\n5PQI8OmcXlMc3xPANTl982i5lTgvIH3PfGqe/xGwNKeXAY8AK4C7i21m5J/HA0PAqUUc83P6MWBT\nPs4PA4PFefgLMKPYfk7luOcBP85p5ePoAhaMLs/rprf6d9iTp3JyS96sItKwvA8Atx3DZgMRcTAi\njgD7SZUJpArjnCLfI3kf+4Hfkyq0+cC1eZyBZ0kV9/k5f39EHKizv48CfZFGOxsB1gOXF+ubHTZ3\nS0S8ntNTgF5Je4GtwFmS6o3t3R8Rf42IAPZUjm/UcEQ8mdPPFXk+RhrBDqDRUJlzSSPcDeRzcgUw\nGyAi7gfeQ7pBWFFs81VJe4CdpNEpR8/fcERszukhYHs+X0OkG6nyPPwjIv5JuhmoPp6YT+qF2Q3s\nBj6U9zGUl/dK6ooIP8O3tjKpBqgxm0B3kf6ZryuWvUV+xKU0QsS0Yl05KtRIMT9C7d9Z+YxXeV7A\nVyJiSxmApG7gjTFibLYiH0tZ/hLgdFIvwIikV0kt26ryWI9S///IvxrkqR5/PQIeiIhv/s8K6QRS\nJQ6px+WNfJ6uAC6OiGFJfUXcZRz/uS4REUrDMY+qPnuvzgvojYh768Q0hzT852pJWyNidYPjMptw\nbsmb1RJARBwitbqvL9b9kTReOMBngePeRvlX5+fJHyC9CLeP1Oq/ZbTSkXS+pBPHKacfuDw/n54K\nLAa2j7PNYdIjiEZOAQ7mCv4T1LZ0j/WGolH+ncDCnF7UIM82YGHxHP9USbPyujXAQ8Aq4L4i7kO5\ngr8AuKTJuMt18yTNyDcRnwOeruTZBCyTdFKO6SxJZ0g6E3gzIh4G1pJ6IMzahlvyZrXKFtz3gVuL\nZfcCG3IX8iYat7LHeiP7AKmCng7cHBFHJN1H6s7enXsIDpIqmsZBRvxN0jf4b8W+MSI2jrP/54GR\nHP9PSc/WS+uBJ3J3/S5qx0FvVGY0kS59DXhI0krSOXy9miEiXpb0LWCzpCnAEeBWSeeQbrIuyy3x\nz0vqAX4GfEnSi6Sbph1NxFFd10/qpn8/8GBEDJZ5ImJLvoHYkS4Rh4GlpC77tZJGcpxfHmN/ZhPO\nQ82a2YSRdEJEvJnTXwAWRcRVLY6pB7gwIpa3Mg6zd4Nb8mY2kS6U9ENSN/gh0tvyZvYucUvezMys\nQ/nFOzMzsw7lSt7MzKxDuZI3MzPrUK7kzczMOpQreTMzsw7lSt7MzKxD/RvuJL8NyyRU/gAAAABJ\nRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11edcce50>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#Try Lambda = 1\n",
    "mytheta = np.zeros((newX_norm.shape[1],1))\n",
    "fit_theta = optimizeTheta(mytheta,newX_norm,y,1)\n",
    "plotFit(fit_theta,stored_means,stored_stds)\n",
    "plotPolyLearningCurve(1.)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Warning: Desired error not necessarily achieved due to precision loss.\n",
      "         Current function value: 123.490836\n",
      "         Iterations: 1\n",
      "         Function evaluations: 56\n",
      "         Gradient evaluations: 43\n"
     ]
    },
    {
     "data": {
      "image/png": "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\nERGROvf/AVOJxjynHB0SAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11f2ef090>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#Try Lambda = 100\n",
    "#Note after one iteration, the lambda of 100 penalizes the theta params so hard\n",
    "#that the minimizer loses precision and gives up...\n",
    "#so the plot below is NOT indicative of a successful fit\n",
    "mytheta = np.random.rand(newX_norm.shape[1],1)\n",
    "fit_theta = optimizeTheta(mytheta,newX_norm,y,100.)\n",
    "plotFit(fit_theta,stored_means,stored_stds)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 3.3 Selecting $\\lambda$ using a cross validation set"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "#lambdas = [0., 0.001, 0.003, 0.01, 0.03, 0.1, 0.3, 1., 3., 10.]\n",
    "lambdas = np.linspace(0,5,20)\n",
    "errors_train, errors_val = [], []\n",
    "for mylambda in lambdas:\n",
    "    newXtrain = genPolyFeatures(X,global_d)\n",
    "    newXtrain_norm, dummy1, dummy2 = featureNormalize(newXtrain)\n",
    "    newXval = genPolyFeatures(Xval,global_d)\n",
    "    newXval_norm, dummy1, dummy2 = featureNormalize(newXval)\n",
    "    init_theta = np.ones((newX_norm.shape[1],1))\n",
    "    fit_theta = optimizeTheta(mytheta,newXtrain_norm,y,mylambda,False)\n",
    "    errors_train.append(computeCost(fit_theta,newXtrain_norm,y,mylambda=mylambda))\n",
    "    errors_val.append(computeCost(fit_theta,newXval_norm,yval,mylambda=mylambda))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAe8AAAFHCAYAAACIxsROAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd4VNXWx/HvpoMQwNCkJbRQVEQEBWlBsEEoKioCInZ9\nLShe60WxCwrY9WIXrtiRkNCUEnpHuIKQhBaK9N5J2e8fJ0TAAAPkzJny+zxPHnMmM3NW1p3Lytnr\n7L2NtRYREREJHvm8DkBERETOjIq3iIhIkFHxFhERCTIq3iIiIkFGxVtERCTIqHiLiIgEGVeLtzGm\nsDFmjjHmd2PMUmPM69mPlzbG/GqMSTbGjDfGlHQzDhERkVBi3J7nbYwpZq09YIzJD8wAngA6Atut\ntW8aY54GSltrn3E1EBERkRDh+rC5tfZA9reFs8+3E+gEfJ39+NdAZ7fjEBERCRWuF29jTD5jzO/A\nJiDJWvsnUN5auxnAWrsJKOd2HCIiIqGigNsnsNZmAZcaYyKA8caYWODEsXqt0SoiIuIj14v3Udba\nPcaYMUAjYLMxpry1drMxpgKwJbfXGGNU1EVEJKxYa83pnuP23eZljt5JbowpClwN/A6MAnplP+0O\nIP5k72Gt1ZeLX/369fM8hnD4Up6V41D4Uo7d//KV21feFwBfG2MMzh8Kw6y1E7N74D8YY+4C0oBb\nXI5DTmLNmjVehxAWlGf3KcfuU44Dh6vF21r7B9Awl8d3AG3dPLeIiEio0gprYa5Xr15ehxAWlGf3\nKcfuU44Dh+uLtJwLY4wN5PhERETykjEG6/UNaxL4kpKSvA4hLCjP7vMyx9HR0Rhj9KUvn7+io6PP\n6TPnt6liIiKhKi0t7YzuFBYx5rQX16d+fSB/4IyGzUUkCBhjVLzljJzsM5P9uIbNRUREQo2Kd5hT\nL9Y/lGf3KccSTlS8RUTEZ1lZWZQoUYL169d7HUpYU89bROQcBXLPu0SJEjk3R+3fv5/ChQuTP39+\njDEMGTKE2267zeMIw9O59rxVvEVEzlEgF+9jVa9enc8//5zWrVuf9DmZmZnkz5/fj1GFJ92wJudE\nfUL/UJ7dpxyfXm6bXzz//PN07dqVbt26UbJkSb755htmz55N06ZNKV26NJUqVaJ3795kZmYCTnHP\nly8fa9euBeD222+nd+/etGvXjoiICJo1a0ZaWprff7dwo+ItIhLmRo4cSY8ePdi9eze33norBQsW\n5L333mPHjh3MmDGD8ePHM2TIkJznnzhH+dtvv+W1115j586dVKlSheeff97fv0LYUfEOc7GxsV6H\nEBaUZ/cFeo6NOfcvtzRv3px27doBULhwYS677DIaN26csxLYvffey5QpU3Kef+LVe5cuXbj00kvJ\nnz8/3bt3Z9GiRe4FK4BWWBMR8YtAbolXqVLluOPk5GSeeOIJFixYwIEDB8jMzOSKK6446esrVKiQ\n832xYsXYt2+fa7GKQ1feYU59Qv9Qnt2nHJ+9E4fB77//fi6++GJWrVrF7t27eemll4LihrxwouIt\nIiLH2bt3LyVLlqRo0aIsW7bsuH63BAYV7zAX6H3CUKE8u085Pj1fN8MYNGgQX331FRERETz44IN0\n7dr1pO9zrhtsyNnRPG8RkXMULPO8JXBonrecE/UJ/UN5dp9yLOFExVtERCTIaNhcROQcadhczpSG\nzUVERMKMineYU5/QP5Rn9ynHEk5UvEVERIKMet4iIudIPW85U+p5i4iIhBkV7zCnPqF/KM/uU47D\nS7Vq1Zg0aRIAb7zxBvfdd59Pzz1T06dPp27dumf1WjepeIuIhIHhw4fTuHFjSpQoQaVKlWjfvj0z\nZszwJJYBAwbQqlWrfzy+fft2ChcuzJ9//nlG7/fss8/yySef5Els+fLlY9WqVTnHzZs3Z9myZXny\n3idjLUyaBDfc4PtrVLzDnNaD9g/l2X3K8ckNHjyYPn360LdvX7Zs2cLatWt56KGHSEhIyPX5mZmZ\nrsbTo0cPZs2aRVpa2nGPf/vtt9SvX5969eq5ev5T8eda7fv3w5AhcPHF8MgjcO21vr9WxVtEJITt\n2bOHfv368dFHH9GpUyeKFi1K/vz5adeuHf379wfgpZde4uabb+b222+nVKlSfP311xw5coTHHnuM\nSpUqUblyZR5//HHS09MB5wq5Q4cOlC5dmsjIyOOuogcMGEDlypWJiIigbt26TJ48+R8xVapUidat\nWzNs2LDjHh82bBh33HEHAKtWraJNmzaUKVOGcuXK0aNHD/bs2ZPr7/jSSy9x++23H/c+0dHRlC1b\nltdff/24586bN48rr7yS0qVLU6lSJR555BEyMjIAaNWqFdZa6tevT0REBD/++CNTpkw5br/z5cuX\n07p1a0qXLs3FF1983B9Ad955Jw8//DBxcXFERETQtGlTVq9efdL/baKiYOxYeO89WLIEHnjgpE/9\nJ2ttwH454YmbJk+e7HUIYUF5dp+XOQ7kf6vGjRtnCxYsaDMzM0/6nBdffNEWKlTIjho1ylpr7cGD\nB+3zzz9vmzZtardt22a3bdtmr7zySvvCCy9Ya6199tln7YMPPmgzMzNtRkaGnT59urXW2uTkZFul\nShW7adMma621aWlpdtWqVbme85tvvrExMTE5x8uXL7eFCxe227Zts9Zau2LFCjthwgSbnp5ut23b\nZlu1amUff/zxnOdHR0fbiRMn5sR/++23W2utXbp0qS1evLidPn26PXLkiO3Tp48tWLBgznMXLFhg\n58yZY7OysmxaWpqtV6+efffdd3Pe1xhzXMxJSUm2SpUq1lpr09PTbc2aNW3//v1tenq6nTRpki1R\nooRNSUmx1lrbq1cvW6ZMGTt//nybmZlpu3fvbm+77bZcf3/A5paa7M/SaetjgTOo8yIicpbMS+c+\nHGv7nfl0tO3bt1OmTBny5Tv1QGvTpk3p0KEDAEWKFGH48OF8+OGHREZGAtCvXz8eeOABXnrpJQoW\nLMjGjRtZvXo1NWrUoFmzZgDkz5+fI0eOsGTJEiIjI6latepJz3fDDTfwf//3f8yePZsmTZowbNgw\nrr/++pzz1ahRgxo1agAQGRnJ448/zssvv3za3/fnn3+mQ4cOOTG98sorfPDBBzk/b9iwYc73VatW\n5b777mPKlCk8+uijOY/bk0z7mzVrFvv37+fpp58GoHXr1sTFxfHtt9/ywgsv5Pxel112GQDdu3fn\niSeeOGms1aqd9tc5KRXvMKc+oX8oz+4L9ByfTeHNC5GRkWzbto2srKxTFvBjh4YB/vrrr+OKb1RU\nFH/99RcATz75JC+++CLXXHMNxhjuvfdenn76aWrUqME777zDiy++yJ9//sm1117LoEGDuOCCC/5x\nvqJFi9KlSxeGDh1KkyZN+Oabb3j77bdzfr5lyxZ69+7NtGnT2LdvH5mZmZx//vmn/X3/+uuv436X\nYsWK5fxBAJCamkqfPn2YP38+Bw8eJCMjI6fYns7GjRv/kaeoqCg2bNiQc1yhQoXjzr1v3z6f3vtM\nqectIhLCmjZtSuHChRk5cuQpn3fijVqVKlU67oaytLQ0KlasCEDx4sUZOHAgK1euZNSoUQwePDin\nt921a1emTZuW89pnnnnmpOe84447+OGHH/jtt9/Yt28fcXFxOT977rnnyJcvH0uXLmXXrl3897//\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11f2fba90>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(8,5))\n",
    "plt.plot(lambdas,errors_train,label='Train')\n",
    "plt.plot(lambdas,errors_val,label='Cross Validation')\n",
    "plt.legend()\n",
    "plt.xlabel('lambda')\n",
    "plt.ylabel('Error')\n",
    "plt.grid(True)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
